perm filename APPLY.PUB[SYS,HE] blob
sn#032858 filedate 1973-03-30 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .INDENT 6
C00005 00003 The modes section contains the TV camera number, if using TV images,
C00010 00004 .SKIP 3ONCE CENTER}TTY INPUT AND INITIALIZATION{BREAK
C00015 00005 .COL(0,15,7)
C00020 00006 S\ABDE\switches to Sixbit mode. Thereafter, all TV input will be
C00026 ENDMK
C⊗;
.INDENT 6;
.EVERY HEADING(APPLY MANUAL,,{PAGE})
.TURN ON "\{∪#";
.MACRO COL(I,A,B) ⊂BEGIN TABS A,IF LENGTH("B") THEN B ELSE A;
. INDENT I,A-1;⊃;
.TABBREAK
APPLY is a program to apply the new Heuckel operator to images
selected by the user. It is designed for debugging the operators, as
well as observing how they work on various types of input.
It is also useful for observing the effect on the image of changing
clips and DAC settings. A 20x20
point window is obtained, either from a TV camera or a disk file and the
user can apply the operators at any desired points in the window, varying
many parameters to determine their effect on the operator output, which
is presented both numerically and graphicly.
The program is found on APPLY.DMP[SYS,HE]. This documentation file
is found on APPLY.DOC[SYS,HE]. Bugs and suggestions to KKP.
.NEXT PAGE; ONCE CENTER }THE DISPLAY{BREAK;
When the program is running the display is divided into six sections,
seperated by lines, as follows:
.BEGIN VERBATIM
* *
MODES SECTION * *
* *
************************* *
* *
* WINDOW LIMITS/ * COMMANDS
* POINTER LOC * SECTION
* SECTION *
* *
* *
* *
* *
WINDOW SECTION * TV PARAMETER *
* SECTION *
* *
* *
* *
*******************************************************************
OPERATOR OUTPUT SECTION
*******************************************************************
PAGE PRINTER SECTION
.END;
The modes section contains the TV camera number, if using TV images,
or the disk file last read in. It also contains the number of bits/sample for the current
image, as read in if using a disk file; otherwise 4 for regular TV images and
6 for Quam sixbit input. If Quam sixbit input is being used, the number of
images averaged and the number of ranges follows the number of bits
as AVE/RANGE. The picture resolution is indicated as NORMAL or DOUBLE.
Finally, if any of DDT (RAID), DDVID, or the edge follower are available, that
will also be indicated. This section is always displayed and is updated as necessary.
The window section contains the intensities at each sample in the
selected 20x20 window. One of the intensities will be displayed much brighter
than the others. This is the position of the pointer which indicates where
the operator will be applied when requested. If the operator display is
present, there will be a circle displayed in this section, with its center
at the pointer coordinates, showing the area of the window the operator
covered. If edges or lines were found, a bright line shows the location
of the composite edge, with (possibly) one or two dimmer lines showing the
boundaries of the three areas the operator divides the scene into. The window
is always displayed and is updated whenever the image is changed. The
pointer display changes as the user moves it. The operator graphic display
is shown only when the operator is applied (see the commands for when the
operator will be displayed.
The upper portion of the window limits/pointer loc section shows the
current coordinates of the limits of the window, the position of the
pointer in the window in octal and decimal, and the number of the
operator last used. It is always displayed. When
using TV images, the bottom portion of this section will show the current
values of TCLIP and BCLIP, the current setting of the DAC controlling the
sensitivity for the COHU camera (if it has been set by the user) and the
A-D converter reading when the DAC was last set. This display is turned
off when using disk images.
The commands section displays the list of commands in a format
similar to that below, except with abbreviated descriptions. Only the
commands which are currently legal are displayed. Thus the execution of many of
the commands will change this section. The entire section can be turned
off and on by the user to reduce flicker and make the screen less cluttered.
The operator output section is displayed only when the operator is
applied and it shows the entire output of the operator. For a description
of the variables displayed see the operator documentation in the hand/eye
library write up.
The bottom of the display is reserved for the page printer.
.SKIP 3;ONCE CENTER}TTY INPUT AND INITIALIZATION{BREAK;
The program is APPLY.DMP[SYS,HE]. When run it will ask if
you want to use a TV camera (reply Y<CR> or N<CR>). Depending on your
answer it will then ask for either the camera number (1-4) or the
disk file name. Terminate either by <CR>. It must have this information
mainly so it can initialize properly. If you are using disk files, you
might not have the cameras turned on. After setting up the initial display,
the program will type READY and will then accept commands.
Commands are one character codes, possibly preceded by a numeric argument
Numbers can be integer or real; the command following it will make the
necessary type conversions, if any. The command is executed as soon as
it is typed; no <CR> is necessary. The R, S, and W commands request
additional information before they can execute properly. This addition
input is terminated by a <CR>. Otherwise <CR> and space are
accepted as no-ops.
.SKIP 3; ONCE CENTER}DDVID{BREAK;
This program can display pictures using DDVID and, when using disk
images, overlay outlines on one of DDVID's channels (whether or not DDVID
is available). Therefore, before using disk images or the V command, be
sure nobody else is using DDVID or you will ruin their display. In general,
if the mode section of the display says DDVID is available and you did not start it, be
sure it is not in use before proceding to use it. DDVID users are easily
driven to violence.
.SKIP 3; ONCE CENTER}COMMANDS{BREAK;
The command codes listed below have three formats. If a code
is preceded by 'n', it will not be recognized unless a number is entered
before it as an argument. If the n is enclosed in <>, the argument is
optional; the description will contain the construct: D=m, where m is
the default argument if none was given. If the code is not preceded by
anything, it does not need an argument and will ignore any given to it.
Arguments are unsigned numbers, possibly containing a decimal point.
All commands except Y and Z will use the integer part of the argument.
If a parameter is initialized to some value m at the start of the program,
the description of the
command which changes it will contain the construct: I=m. If a description
contains the construct: a≤n≤b, this is the valid range of the argument and
it will be set to the nearest limit if outside this range.
The following flags are used to indicate restrictions on the
commands and their effect on the display:
.COL(5,15);
A\the operator display will be turned off if it was on
B\the mode section will be updated
C\the operator will be called and displayed after the command is finished
D\the TV camera will be read after the command is finished and the
window will be updated
E\this command is recognized only when using TV images.
F\this command is recognized only in TV mode using 4 bit images
G\this command is recognized only if APPLY is loaded as part of the
edge follower
.END;
If a command is not recognized, a question mark will be typed and the
command will be ignored. A few commands have error messages, which should be
self-explanitory.
.COL(0,15,7)
∪CODE\∪FLAGS\∪DESCRIPTION
M\AD\Move the window. Pot 12 controls horizontal motion and pot
13 controls vertical motion. If you are in TV mode the cursor on the TV
monitor will show the area being read; otherwise, a rectangle representing
the limits of the disk image is displayed on channel 36 (one of the DDVID
channels) and a rectangle the size of the window is moved inside it to show
the position of the window in the image. In the later case, if the disk
image has been displayed by DDVID (V command) the window rectangle will overlay it
to show the area which will be used for the window. The window cannot
go outside the limits of the image. Typing any character will cause the
program to return to the command scanner. The character typed is given to
the command decoder as part of the next command.
The pointer will be positioned in the center of the window.
<n>↑\A\the position of the pointer will be moved up n positions
in the window, or to the edge of the window, whichever is reached first.
0≤n≤20. D=1.
<n>↓\A\same as ↑ except pointer is moved down.
<n>→\A\same as ↑ except pointer is moved to the right.
<n>←\A\same as ↑ except pointer is moved to the left.
<n>O\C\apply Operator n. 1≤n≤2. I=1. D=last operator specified.
<n>C\ABD\enter TV mode using Camera n. If you were already in
TV mode, this forces rereading the camera using the current settings of
all variables, possibly changing the camera to be read if a new number
is specified. If you were previously processing a disk image you will
be initialized with the window in the center of the TV image, the pointer
in the center of the window, four bit images, and normal resolution.
1≤n≤4. I=as specified when program was started if started in camera mode
else 1. D=last camera number specified.
R\AB\Read a disk file and enter disk mode. A file name will be requested, which must
be terminated by a <CR>. If the file cannot be found, or an error occurs,
an error message is typed and a new file name requested. If the file
has a title it will be typed out. If it contains images under more than
one filter you will be asked which filter you want. Give at least the
first letter of the filter followed by a <CR>. If the disk image is
larger than 20x20, the window will be centered in the image and the
rectangles described under the M command will be displayed. Images
less than 20x20 will probably blow the program. The pointer will be
centered in the window.
nY\C\n becomes the new value of CONF, the confidence threshold
for the operators. It is a real number. 0≤n≤1.0 but the useful range
is something like 0.8≤n≤0.98. I=0.90.
nZ\C\n becomes the new value of DIFF, the brightness difference
threshold for the operators. It is a real number also. 0≤n≤999. I=1.5.
nB\ADF\n becomes the new value of BCLIP. I=7. 0≤n≤7. It should
be ≥ TCLIP but the program does no checking.
nT\ADF\n becomes the new value of TCLIP. I=0. 0≤n≤7. It should
be ≤ BCLIP but the program does no checking.
S\ABDE\switches to Sixbit mode. Thereafter, all TV input will be
six bit samples, using the Quam sixbit input routines. BCLIP and TCLIP
will be set to 7 and 0, respectively and normal resolution is forced.
The program will request the number of clip level ranges to be used (1-7
with the higher numbers giving better results) and the number of frames
to be averaged for each range. The answers must be terminated by <CR>.
TV input is much slower in this mode.
F\ABDE\switches to Four bit mode. Thereafer, all TV input will
be four bit samples, using raw TV input. This is the fastest way to obtain
images, and the program starts in this mode.
W\E\Write the current window on the disk. A file name will
be requested and must be terminated by a <CR>. It will request a new name if
there are any errors. The window is written as the image under the clear filter,
with the title APPLY OUTPUT. A description will be provided of the form:
.BEGIN VERBATIM
CAMERA: n
TVCAM: n
RESOLUTION: {NORMAL or DOUBLE}
TCLIP: n
BCLIP: n
DAC: n
.END continue;
where the appropriate number is filled in for n. The contents of the window and
the parameters are not altered. Outputting windows when the input was a disk file
is not provided because it is messy to pull the window out of the input file and
you can recreate the current state exactly from the input file anyway.
H\E\sHow the location in the image of the current window with the
cursor on the monitor until any character is typed. The character is given to
the command decoder.
N\ABDF\Normal resolution mode. This is the mode the program starts in.
I\ABDF\Increate resolution (enter double resolution mode). Thereafter,
whenever the TV is read, a double resolution image is read in. This is slower
than normal resolution since the program must read four images and merge
them. Since the hand/eye system cannot cope with fractional coordinates, the
coordinates of the pointer and window limits will not change but the area
being read in corresponds to the 10x10 area in the center of the normal 20x20
window. Therefore, the exact window limits are five points in from what the
display says and the pointer coordinates are Xreal=((X-LEFT)/2)+LEFT+5 and
Yreal=((Y-TOP)/2)+TOP+5. When executing the M and H commands, the areas
being read are the correct 10x10 square so you can position accurately.
<n>D\ADE\(recognized only if using TV 1). Set the DAC to n and
display both the new DAC setting and the AD reading. I=0. 0≤n≤63. If n is
not given, the current value is incremented by one.
?\\Reverse the state of the command display (on or off).
V\\send the current window to DDVID for displaying if in TV mode;
send the entire disk buffer otherwise. The size will be doubled if the
display will fit on the screen. This command is recognized only if DDVID
is available.
X\\go to DDT/RAID (not recognized if DDT not available). APPLY display
will be turned off. In RAID, FRMDDT<cntl>G will return you to the command
decoder with APPLY's display on and RAID's off. If you are in RAID and
need the display turned off, TODDT<cntl>G will do it and return to RAID,
with RAID's current location pointer changed. If you are in APPLY and
have the wrong display, most commands will fix the problem. ?? is a good
no-op for fixing displays.
T\G\call the edge follower to track an edge at the pointer location.
A\G\accomodate at the pointer location.
E\G\exit to the edge follower command decoder.
.END